The present disclosure relates to operations for accessing a shared resource by two or more competing access seekers and more specifically to conditional load memory access operations that include a time-out feature, which can be used to serialize memory access requests from two or more concurrently executing threads or processes.
When the instructions of a computer program are executed, the instance being executed is referred to as a “process.” A “thread” generally refers to the smallest sequence of instructions that can be managed independently by a scheduler. Typically, a thread is a component of a process and a process can include multiple threads. One example of a thread is a subroutine. Multiple threads may share resources, such as first, second, and third level caches and a main memory. Multiple threads can be simultaneously executing within a process. Two or more threads sharing a memory is one example of two or more access seekers sharing a resource.
A processor in a computer system can include a capability to execute multiple active threads. Multiple active threads can execute on a processor having a single core or on one having multiple cores. A computer system can also include more than one processor with multiple threads or multiple processes executing on the two or more processors. Multiple active threads may each be working on a separate piece of a larger problem. The threads communicate with one another and share results by sharing a memory or hierarchy of memories. Two or more processes sharing a memory and two or more processors sharing a memory are additional examples of two or more access seekers sharing a resource.